// Copyright 2024 The Pigweed Authors
//
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License. You may obtain a copy of
// the License at
//
//     https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations under
// the License.

// AUTOGENERATED - DO NOT EDIT
//
// This file was generated by generate_hash_macro.py.
// To make changes, update the script and run it to regenerate the files.
#pragma once

#include <stdint.h>

// 128-character version of the tokenizer hash function.
//
// The argument must be a string literal. It is concatenated with "" to ensure
// that this is the case.
//
// clang-format off

#define PW_TOKENIZER_65599_FIXED_LENGTH_128_HASH(str)                          \
  (uint32_t)(sizeof(str "") - 1 + /* The argument must be a string literal. */ \
             0x0001003full * (uint8_t)str[0] +                                 \
             0x007e0f81ull * (uint8_t)(  1 < sizeof(str) ? str[  1] : 0) +     \
             0x2e86d0bfull * (uint8_t)(  2 < sizeof(str) ? str[  2] : 0) +     \
             0x43ec5f01ull * (uint8_t)(  3 < sizeof(str) ? str[  3] : 0) +     \
             0x162c613full * (uint8_t)(  4 < sizeof(str) ? str[  4] : 0) +     \
             0xd62aee81ull * (uint8_t)(  5 < sizeof(str) ? str[  5] : 0) +     \
             0xa311b1bfull * (uint8_t)(  6 < sizeof(str) ? str[  6] : 0) +     \
             0xd319be01ull * (uint8_t)(  7 < sizeof(str) ? str[  7] : 0) +     \
             0xb156c23full * (uint8_t)(  8 < sizeof(str) ? str[  8] : 0) +     \
             0x6698cd81ull * (uint8_t)(  9 < sizeof(str) ? str[  9] : 0) +     \
             0x0d1b92bfull * (uint8_t)( 10 < sizeof(str) ? str[ 10] : 0) +     \
             0xcc881d01ull * (uint8_t)( 11 < sizeof(str) ? str[ 11] : 0) +     \
             0x7280233full * (uint8_t)( 12 < sizeof(str) ? str[ 12] : 0) +     \
             0x50c7ac81ull * (uint8_t)( 13 < sizeof(str) ? str[ 13] : 0) +     \
             0x8da473bfull * (uint8_t)( 14 < sizeof(str) ? str[ 14] : 0) +     \
             0x4f377c01ull * (uint8_t)( 15 < sizeof(str) ? str[ 15] : 0) +     \
             0xfaa8843full * (uint8_t)( 16 < sizeof(str) ? str[ 16] : 0) +     \
             0x33b78b81ull * (uint8_t)( 17 < sizeof(str) ? str[ 17] : 0) +     \
             0x45ac54bfull * (uint8_t)( 18 < sizeof(str) ? str[ 18] : 0) +     \
             0x7a27db01ull * (uint8_t)( 19 < sizeof(str) ? str[ 19] : 0) +     \
             0xeacfe53full * (uint8_t)( 20 < sizeof(str) ? str[ 20] : 0) +     \
             0xae686a81ull * (uint8_t)( 21 < sizeof(str) ? str[ 21] : 0) +     \
             0x563335bfull * (uint8_t)( 22 < sizeof(str) ? str[ 22] : 0) +     \
             0x6c593a01ull * (uint8_t)( 23 < sizeof(str) ? str[ 23] : 0) +     \
             0xe3f6463full * (uint8_t)( 24 < sizeof(str) ? str[ 24] : 0) +     \
             0x5fda4981ull * (uint8_t)( 25 < sizeof(str) ? str[ 25] : 0) +     \
             0xe03916bfull * (uint8_t)( 26 < sizeof(str) ? str[ 26] : 0) +     \
             0x44cb9901ull * (uint8_t)( 27 < sizeof(str) ? str[ 27] : 0) +     \
             0x871ba73full * (uint8_t)( 28 < sizeof(str) ? str[ 28] : 0) +     \
             0xe70d2881ull * (uint8_t)( 29 < sizeof(str) ? str[ 29] : 0) +     \
             0x04bdf7bfull * (uint8_t)( 30 < sizeof(str) ? str[ 30] : 0) +     \
             0x227ef801ull * (uint8_t)( 31 < sizeof(str) ? str[ 31] : 0) +     \
             0x7540083full * (uint8_t)( 32 < sizeof(str) ? str[ 32] : 0) +     \
             0xe3010781ull * (uint8_t)( 33 < sizeof(str) ? str[ 33] : 0) +     \
             0xe4c1d8bfull * (uint8_t)( 34 < sizeof(str) ? str[ 34] : 0) +     \
             0x24735701ull * (uint8_t)( 35 < sizeof(str) ? str[ 35] : 0) +     \
             0x4f63693full * (uint8_t)( 36 < sizeof(str) ? str[ 36] : 0) +     \
             0xf2b5e681ull * (uint8_t)( 37 < sizeof(str) ? str[ 37] : 0) +     \
             0xa144b9bfull * (uint8_t)( 38 < sizeof(str) ? str[ 38] : 0) +     \
             0x69a8b601ull * (uint8_t)( 39 < sizeof(str) ? str[ 39] : 0) +     \
             0xb685ca3full * (uint8_t)( 40 < sizeof(str) ? str[ 40] : 0) +     \
             0xb52bc581ull * (uint8_t)( 41 < sizeof(str) ? str[ 41] : 0) +     \
             0x5b469abfull * (uint8_t)( 42 < sizeof(str) ? str[ 42] : 0) +     \
             0x111f1501ull * (uint8_t)( 43 < sizeof(str) ? str[ 43] : 0) +     \
             0x4ba72b3full * (uint8_t)( 44 < sizeof(str) ? str[ 44] : 0) +     \
             0xc962a481ull * (uint8_t)( 45 < sizeof(str) ? str[ 45] : 0) +     \
             0x33c77bbfull * (uint8_t)( 46 < sizeof(str) ? str[ 46] : 0) +     \
             0x39d67401ull * (uint8_t)( 47 < sizeof(str) ? str[ 47] : 0) +     \
             0xafc78c3full * (uint8_t)( 48 < sizeof(str) ? str[ 48] : 0) +     \
             0xce5a8381ull * (uint8_t)( 49 < sizeof(str) ? str[ 49] : 0) +     \
             0x4bc75cbfull * (uint8_t)( 50 < sizeof(str) ? str[ 50] : 0) +     \
             0x02ced301ull * (uint8_t)( 51 < sizeof(str) ? str[ 51] : 0) +     \
             0x83e6ed3full * (uint8_t)( 52 < sizeof(str) ? str[ 52] : 0) +     \
             0x63136281ull * (uint8_t)( 53 < sizeof(str) ? str[ 53] : 0) +     \
             0xc4463dbfull * (uint8_t)( 54 < sizeof(str) ? str[ 54] : 0) +     \
             0x8b083201ull * (uint8_t)( 55 < sizeof(str) ? str[ 55] : 0) +     \
             0x69054e3full * (uint8_t)( 56 < sizeof(str) ? str[ 56] : 0) +     \
             0x268d4181ull * (uint8_t)( 57 < sizeof(str) ? str[ 57] : 0) +     \
             0xbe441ebfull * (uint8_t)( 58 < sizeof(str) ? str[ 58] : 0) +     \
             0xf1829101ull * (uint8_t)( 59 < sizeof(str) ? str[ 59] : 0) +     \
             0x0022af3full * (uint8_t)( 60 < sizeof(str) ? str[ 60] : 0) +     \
             0xb7c82081ull * (uint8_t)( 61 < sizeof(str) ? str[ 61] : 0) +     \
             0x5ac0ffbfull * (uint8_t)( 62 < sizeof(str) ? str[ 62] : 0) +     \
             0x553df001ull * (uint8_t)( 63 < sizeof(str) ? str[ 63] : 0) +     \
             0xea3f103full * (uint8_t)( 64 < sizeof(str) ? str[ 64] : 0) +     \
             0xb5c3ff81ull * (uint8_t)( 65 < sizeof(str) ? str[ 65] : 0) +     \
             0xbabce0bfull * (uint8_t)( 66 < sizeof(str) ? str[ 66] : 0) +     \
             0xd53a4f01ull * (uint8_t)( 67 < sizeof(str) ? str[ 67] : 0) +     \
             0xc85a713full * (uint8_t)( 68 < sizeof(str) ? str[ 68] : 0) +     \
             0xbf80de81ull * (uint8_t)( 69 < sizeof(str) ? str[ 69] : 0) +     \
             0xff37c1bfull * (uint8_t)( 70 < sizeof(str) ? str[ 70] : 0) +     \
             0x9077ae01ull * (uint8_t)( 71 < sizeof(str) ? str[ 71] : 0) +     \
             0x3b74d23full * (uint8_t)( 72 < sizeof(str) ? str[ 72] : 0) +     \
             0x73febd81ull * (uint8_t)( 73 < sizeof(str) ? str[ 73] : 0) +     \
             0x4931a2bfull * (uint8_t)( 74 < sizeof(str) ? str[ 74] : 0) +     \
             0xa5f60d01ull * (uint8_t)( 75 < sizeof(str) ? str[ 75] : 0) +     \
             0xe48e333full * (uint8_t)( 76 < sizeof(str) ? str[ 76] : 0) +     \
             0x723d9c81ull * (uint8_t)( 77 < sizeof(str) ? str[ 77] : 0) +     \
             0xb9aa83bfull * (uint8_t)( 78 < sizeof(str) ? str[ 78] : 0) +     \
             0x34b56c01ull * (uint8_t)( 79 < sizeof(str) ? str[ 79] : 0) +     \
             0x64a6943full * (uint8_t)( 80 < sizeof(str) ? str[ 80] : 0) +     \
             0x593d7b81ull * (uint8_t)( 81 < sizeof(str) ? str[ 81] : 0) +     \
             0x71a264bfull * (uint8_t)( 82 < sizeof(str) ? str[ 82] : 0) +     \
             0x5bb5cb01ull * (uint8_t)( 83 < sizeof(str) ? str[ 83] : 0) +     \
             0x5cbdf53full * (uint8_t)( 84 < sizeof(str) ? str[ 84] : 0) +     \
             0xc7fe5a81ull * (uint8_t)( 85 < sizeof(str) ? str[ 85] : 0) +     \
             0x921945bfull * (uint8_t)( 86 < sizeof(str) ? str[ 86] : 0) +     \
             0x39f72a01ull * (uint8_t)( 87 < sizeof(str) ? str[ 87] : 0) +     \
             0x6dd4563full * (uint8_t)( 88 < sizeof(str) ? str[ 88] : 0) +     \
             0x5d803981ull * (uint8_t)( 89 < sizeof(str) ? str[ 89] : 0) +     \
             0x3c0f26bfull * (uint8_t)( 90 < sizeof(str) ? str[ 90] : 0) +     \
             0xee798901ull * (uint8_t)( 91 < sizeof(str) ? str[ 91] : 0) +     \
             0x38e9b73full * (uint8_t)( 92 < sizeof(str) ? str[ 92] : 0) +     \
             0xb8c31881ull * (uint8_t)( 93 < sizeof(str) ? str[ 93] : 0) +     \
             0x908407bfull * (uint8_t)( 94 < sizeof(str) ? str[ 94] : 0) +     \
             0x983ce801ull * (uint8_t)( 95 < sizeof(str) ? str[ 95] : 0) +     \
             0x5efe183full * (uint8_t)( 96 < sizeof(str) ? str[ 96] : 0) +     \
             0x78c6f781ull * (uint8_t)( 97 < sizeof(str) ? str[ 97] : 0) +     \
             0xb077e8bfull * (uint8_t)( 98 < sizeof(str) ? str[ 98] : 0) +     \
             0x56414701ull * (uint8_t)( 99 < sizeof(str) ? str[ 99] : 0) +     \
             0x8111793full * (uint8_t)(100 < sizeof(str) ? str[100] : 0) +     \
             0x3c8bd681ull * (uint8_t)(101 < sizeof(str) ? str[101] : 0) +     \
             0xbceac9bfull * (uint8_t)(102 < sizeof(str) ? str[102] : 0) +     \
             0x4786a601ull * (uint8_t)(103 < sizeof(str) ? str[103] : 0) +     \
             0x4023da3full * (uint8_t)(104 < sizeof(str) ? str[104] : 0) +     \
             0xa311b581ull * (uint8_t)(105 < sizeof(str) ? str[105] : 0) +     \
             0xd6dcaabfull * (uint8_t)(106 < sizeof(str) ? str[106] : 0) +     \
             0x8b0d0501ull * (uint8_t)(107 < sizeof(str) ? str[107] : 0) +     \
             0x3d353b3full * (uint8_t)(108 < sizeof(str) ? str[108] : 0) +     \
             0x4b589481ull * (uint8_t)(109 < sizeof(str) ? str[109] : 0) +     \
             0x1f4d8bbfull * (uint8_t)(110 < sizeof(str) ? str[110] : 0) +     \
             0x3fd46401ull * (uint8_t)(111 < sizeof(str) ? str[111] : 0) +     \
             0x19459c3full * (uint8_t)(112 < sizeof(str) ? str[112] : 0) +     \
             0xd4607381ull * (uint8_t)(113 < sizeof(str) ? str[113] : 0) +     \
             0xb73d6cbfull * (uint8_t)(114 < sizeof(str) ? str[114] : 0) +     \
             0x84dcc301ull * (uint8_t)(115 < sizeof(str) ? str[115] : 0) +     \
             0x7554fd3full * (uint8_t)(116 < sizeof(str) ? str[116] : 0) +     \
             0xdd295281ull * (uint8_t)(117 < sizeof(str) ? str[117] : 0) +     \
             0xbfac4dbfull * (uint8_t)(118 < sizeof(str) ? str[118] : 0) +     \
             0x79262201ull * (uint8_t)(119 < sizeof(str) ? str[119] : 0) +     \
             0xf2635e3full * (uint8_t)(120 < sizeof(str) ? str[120] : 0) +     \
             0x04b33181ull * (uint8_t)(121 < sizeof(str) ? str[121] : 0) +     \
             0x599a2ebfull * (uint8_t)(122 < sizeof(str) ? str[122] : 0) +     \
             0x3bb08101ull * (uint8_t)(123 < sizeof(str) ? str[123] : 0) +     \
             0x3170bf3full * (uint8_t)(124 < sizeof(str) ? str[124] : 0) +     \
             0xe9fe1081ull * (uint8_t)(125 < sizeof(str) ? str[125] : 0) +     \
             0xa6070fbfull * (uint8_t)(126 < sizeof(str) ? str[126] : 0) +     \
             0xeb7be001ull * (uint8_t)(127 < sizeof(str) ? str[127] : 0))

// clang-format on
